package com.ljh.tr.util;
//接口类型：互亿无线触发短信接口，支持发送验证码短信、订单通知短信等。
//账户注册：请通过该地址开通账户http://sms.ihuyi.com/register.html
//注意事项：
//（1）调试期间，请用默认的模板进行测试，默认模板详见接口文档；
//（2）请使用APIID（查看APIID请登录用户中心->验证码短信->产品总览->APIID）及 APIkey来调用接口；
//（3）该代码仅供接入互亿无线短信接口参考使用，客户可根据实际需要自行编写；

import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;

import org.dom4j.Document;   
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;   
import org.dom4j.Element;   

public class SendMessageUtil {
	//短信发送接口   手机号 ， 内容 （网站信息，验证码） ， APIID 、APIKEY(验证使用者身份)
	private static String URL = "http://106.ihuyi.cn/webservice/sms.php?method=Submit";
	
	public static void main(String [] args) {
		
		HttpClient client = new HttpClient(); 
		PostMethod method = new PostMethod(URL);

		client.getParams().setContentCharset("UTF-8");//请求编码格式
		method.setRequestHeader("ContentType","application/x-www-form-urlencoded;charset=UTF-8");

		int mobile_code = (int)((Math.random()*9+1)*100000);//随机数验证码

	    String content = new String("您的验证码是：" + mobile_code + "。请不要把验证码泄露给其他人。");

	    //提交的参数
		NameValuePair[] data = {//提交短信
			    new NameValuePair("account", "C37122118"), //查看用户名是登录用户中心->验证码短信->产品总览->	
			    new NameValuePair("password", "bd874f438812c40538209a360d1a2a02"),  //查看密码请登录用户中心->验证码短信->产品总览->APIKEY
			    //new NameValuePair("password", util.StringUtil.MD5Encode("密码")),
			    new NameValuePair("mobile", "15011668032"), 
			    new NameValuePair("content", content),
		};
		
		method.setRequestBody(data);

		try {
			client.executeMethod(method);
			
			//获取返回值
			String SubmitResult =method.getResponseBodyAsString();

			//System.out.println(SubmitResult);

			System.out.println(SubmitResult);
			
			Document doc = DocumentHelper.parseText(SubmitResult);
			Element root = doc.getRootElement();

			String code = root.elementText("code");
			String msg = root.elementText("msg");
			String smsid = root.elementText("smsid");

			System.out.println(code);
			System.out.println(msg);
			System.out.println(smsid);

			 if("2".equals(code)){
				System.out.println("短信提交成功");
			}
			 
		} catch (HttpException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (DocumentException e) {
			e.printStackTrace();
		}	
	}
	
	/**
	 * @param conten 验证码的内容
	 * @param phone 手机号
	 * @return
	 * @desc 发送验证码
	 * @time 2017-8-2上午10:23:30
	 */
	public static String sendMes(String content,String phone){
		HttpClient client = new HttpClient(); 
		PostMethod method = new PostMethod(URL);

		client.getParams().setContentCharset("UTF-8");//请求编码格式
		method.setRequestHeader("ContentType","application/x-www-form-urlencoded;charset=UTF-8");

	    //提交的参数
		NameValuePair[] data = {//提交短信
			    new NameValuePair("account", Mycons.HUYI_APIID), //查看用户名是登录用户中心->验证码短信->产品总览->	
			    new NameValuePair("password", Mycons.HUYI_APIKEY),  //查看密码请登录用户中心->验证码短信->产品总览->APIKEY
			    //new NameValuePair("password", util.StringUtil.MD5Encode("密码")),
			    new NameValuePair("mobile", phone), 
			    new NameValuePair("content", content),
		};
		
		method.setRequestBody(data);
		String code =null;
		try {
			client.executeMethod(method);
			//获取返回值
			String SubmitResult =method.getResponseBodyAsString();
			System.out.println(SubmitResult);
			//解析xml
			Document doc = DocumentHelper.parseText(SubmitResult);
			Element root = doc.getRootElement();
			//返回值
			code = root.elementText("code");
			String msg = root.elementText("msg");
			String smsid = root.elementText("smsid");

			System.out.println(code);
			System.out.println(msg);
			System.out.println(smsid);

			 if("2".equals(code)){
				System.out.println("短信提交成功");
			}
			 
		} catch (HttpException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (DocumentException e) {
			e.printStackTrace();
		}	
		return code;
	}
}